<?php

/**
 * Created by PhpStorm.
 * Author: ls
 * Time: 2023/9/18 14:47
 * Desc: 积分相关
 */
abstract class Contract_Api_Integral_Integral
{
    use Trait_Api_Image;


    /**
     * 获取用户当前积分
     * @param int $mid
     * @return array
     */
    abstract function get_integral(int $mid): array;

    /**
     * 获取会员积分记录
     * @param int $mid
     * @param array $params
     * @return array
     */
    abstract function get_user_credit_list(int $mid, array $params = array()): array;

    /**
     * 产品绑定的积分策略（抵扣，赠送）
     * @param array $params
     * @return array
     * @throws Exception
     */
    abstract function get_integral_strategy(array $params): array;

    /**
     * 获取会员签到状态
     * @param int $mid
     * @return array
     */
    abstract function get_member_sign_status(int $mid): array;

    /**
     * 签到
     * @param int $mid
     * @return array
     */
    abstract function sign_in(int $mid): array;

    /**
     * 用户积分及等级
     * @param int $mid
     * @return array
     */
    abstract function integral_rank(int $mid): array;

    /**
     * 积分任务
     * @param int $mid
     * @param array $params
     * @return array
     */
    abstract function get_grade_strategy(int $mid, array $params = array()): array;

    /**
     * 检测邮箱是否注册
     * @param int $mid
     * @param string $email
     * @return array
     */
    abstract function check_email(int $mid, string $email): array;

    /**
     * 发送邮箱验证码
     * @param int $mid
     * @param string $email
     * @return array
     */
    abstract function send_email_code(int $mid, string $email): array;

    /**
     * 绑定邮箱保存
     * @param int $mid
     * @param array $params
     * @return array
     */
    abstract function bind_email(int $mid, array $params = array()): array;
}